#!/bin/bash
#控制流
#1. if控制流
:<<EOF
 if判断流
 语法:
 if condition
then
    command1 
    command2
    ...
    commandN 
fi
EOF

a=11
b=6
# if test [$a -gt]
# then
#   echo "大于"
# else
#   echo "小于"
# fi

if [ $a == $b ]
then
  echo "等于"
elif [ $a -gt $b ]
then
  echo "a 大于 b"
elif [ $a -lt $b ]
then
  echo "a 小于 b"
else
  echo "没有符合的条件"
fi


# 2. for 循环
:<<EOF
  for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

for var in item1 item2 ... itemN; do command1; command2… done;
EOF
# 空格隔开
for a in 1 2 3 4 5
do
  echo "值为:$a"
done

for str in hello hsmy world
do
  echo "值:$str"
done

# 打印乘法表
echo "输入一个数:"
read num
for(( i=1;i<=$num;i++ ))
do
  for(( j=1;j<=$num;j++ ))
  do
    #判断j是否小于i,当j小于i时不输出，输出不换行，末尾一个制表符
    [ $j -le $i ] && echo -n "$[i]*$[j]=$((i*j)) " 
  done
  echo " "
done


#3. whiel 循环
:<<EOF
  语法:
  while condition
do
    command
done
EOF
int=1
while(( $int<=6 ))
do
  echo $int
  let "int++"
done

#4. until  循环
:<<EOF
  语法:
    until condition
do
    command
done
EOF

a=0
until [ ! $a -lt 6 ]
do
  echo $a
  a=`expr $a + 1`
done

#5 case...esac
:<<EOF
  语法:
    case ... esac 为多选择语句，与C语言中的 switch ... case 类似，每个 case 分支用右圆括号开始，用两个分号 ;; 表示 break，即执行结束. 语法为：
    case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2）
    command1
    command2
    ...
    commandN
    ;;
esac
EOF

echo '输入1到4之间的数字:'
echo '您输入的数字为:'
read b
case $b in
  1) echo '你选择了1'
  ;;
  2) echo '你选择了2'
  ;;
  3) echo '你选择了3'
  ;;
  4) echo '你选择了4'
  ;;
  *) echo '你没有输入1到4之间的数字'
  ;;
esac

#6 跳出循环
# break break命令允许跳出所有循环（终止执行后面的所有循环）。 
while :
do
  echo -n "输入1到5之间的数字:"
  read aNum
  case $aNum in
  1|2|3|4|5) echo "你输入的数字为: $aNum!"
  ;;
  *) echo "你输入的数字不是 1 到 5 之间的!"
      break # 直接跳出整个循环
      #continue #continue命令与break命令类似，只有一点差别，它不会跳出所有循环，仅仅跳出当前循环
      echo "游戏结束"
  ;;
  esac
done

  